/* exercice 2 : une possibilite : T12= true P12 = fail Q12=true T13=T23=fail P13=P23=_ Q13=Q23=true */ /* exercice 3 */ filtre_negatifs([],[]). filtre_negatifs([N|L],[N|P]):-N>=0,filtre_negatifs(L,P). filtre_negatifs([N|L],P):-N<0,filtre_negatifs(L,P). map_carre([],[]). map_carre([X|L],[Y|T]):-Y is X*X, map_carre(L,T). filtre([],_,[]). filtre([X|L],G,[X|R]):- T=..[G,X], T, filtre(L,G,R). filtre([X|L],G,R):- T=..[G,X], not(T), filtre(L,G,R). map([],_,[]). map([X|L],T,[Y|R]):-Q=..[T,X,Y],Q,map(L,T,R). test0(X):-X>=0. test(X,Y):-Y is X*X. f(L,R):-filtre(L,test0,R1),map(R1,test,R). /* exercice 4 */ move([_|L],L). move([[_|L]|L1],[L|L1]). move([X|L],[X|L1]):-move(L,L1). gagne([]). gagne(P):-move(P,Q), not(gagne(Q)).